library message_index;

// 🔥 导入必要的依赖
import 'controller.dart';
import 'package:playtruly/common/services/notification_manager.dart';
import 'package:playtruly/common/services/rongcloud_service.dart';

export 'controller.dart' show MessageIndexController, ChatModel;
export 'view.dart' show MessageIndexPage;

// 🔥 导出外部调用方法，供融云消息处理系统使用
class MessageListUpdater {
  /// 更新聊天列表未读状态（供外部调用）
  static void updateChatUnread({
    required String senderId,
    required String message,
    String? senderName,
  }) {
    MessageIndexController.updateChatUnreadFromExternal(
      senderId: senderId,
      message: message,
      senderName: senderName,
    );
  }
  
  /// 获取MessageIndexController实例（如果存在）
  static MessageIndexController? getController() {
    return MessageIndexController.getInstance();
  }
  
  /// 🔥 设置好友申请通知状态（供外部调用 - 使用NotificationManager统一管理）
  static void setFriendRequestNotification(bool hasNotification) {
    try {
      // 优先使用NotificationManager统一管理
      final notificationManager = NotificationManager.to;
      notificationManager.setFriendRequestNotification(hasNotification);
    } catch (e) {
      // 降级到直接控制器调用
      final controller = MessageIndexController.getInstance();
      if (controller != null) {
        controller.setFriendRequestNotification(hasNotification);
      }
    }
  }
  
  /// 🔥 清除好友申请通知状态（供外部调用 - 使用NotificationManager统一管理）
  static void clearFriendRequestNotification() {
    try {
      // 优先使用NotificationManager统一管理
      final notificationManager = NotificationManager.to;
      notificationManager.clearFriendRequestNotification();
      
      // 🔥 同时清除融云服务中的好友申请状态
      try {
        final rongCloudService = RongCloudService.to;
        rongCloudService.clearPendingFriendRequestNotification();
      } catch (e) {
        // 忽略融云服务清除失败，不影响主要逻辑
      }
    } catch (e) {
      // 降级到直接控制器调用
      final controller = MessageIndexController.getInstance();
      if (controller != null) {
        controller.clearFriendRequestNotification();
      }
    }
  }
}